Compte Rendu

SQL - TP1

 

  1. Lister tous les jobs en éliminant les doublons :

select distinct JOB from emp;

  1. Lister le nom, le job et le salaire des employés du département 20 qui gagnent plus de 2000$ :

select ENAME, JOB, SAL from emp where DEPTNO=20 and SAL>2000;

  1. Lister tout les employés dont le job est manager ou président :

select empno,ename from emp where job='MANAGER' or job='PRESIDENT';

  1. Trouver tout les employés qui gagnent entre 1200$ et 1400$ :

select empno,ename,sal from emp where sal between 1200 and 1400;

  1. Trouver les employés qui sont CLERK, ANALYST ou SALESMAN :

select empno,ename, job from emp where job in('CLERK','ANALYST','SALESMAN');

  1. Trouver les employés dont le nom commence par M :

select empno,ename from emp where ename like(‘M%’) or ename like(‘m%’);

  1. Trouver tout les employés dont le nom comporte 5 caractères et finit par la lettre N :

select empno,ename from emp where ename like('____n') or ename like('____N');

  1. Trouver tous les employés qui n'ont pas un nom de 5 caractères :

select empno,ename from emp where ename not like('_____');

  1. Lister les employés qui ne perçoivent pas de conditions :

select empno,ename from emp where comm=0 or comm is NULL;

  1. Lister les employés des département 30 dans l'ordre croissant du salaire puis dans l'ordre décroissant :

 

ordre croissant : select empno,ename,sal from emp where deptno=30 order by sal;
    
ordre décroissant : select empno,ename,sal from emp where deptno=30 order by sal desc;

  1. Idem mais dans l'ordre alphabétique du job, et pour un job dans l'ordre décroissant du salaire :

select empno,ename,sal,job from emp where deptno=30 order by job, sal desc;

 

  1. Lister les employés par ordre croissant de leur commission :

select empno,ename,comm from emp order by comm;

  1. Liste par ordre décroissant :

select empno,ename,comm from emp order by comm desc;

  1. Trouver le nom du département de 'ALLEN' :

select dname from emp,dept where emp.deptno=dept.deptno and ename='ALLEN';

  1. Faire un joint des tables dept et emp :

select * from emp,dept where  emp.deptno=dept.deptno;

  1. Lister les départements qui n'ont pas d'employés :

select * from dept where deptno not in(select distinct emp.deptno from emp, dept where emp.deptno=dept.deptno);

  1. Lister le nom du département et tout les champs de la table EMP pour les employés qui travaillent à Chicago :

select distinct emp.*, dname from emp,dept where emp.deptno=dept.deptno and dept.loc=’CHICAGO’;

  1. Pour les employés dont le salaire exède celui de leur manager, lister, le nom de ces employés, leur salaire, le nom et le salaire de leur manager :

select emp1.ename,emp1.sal,emp2.ename,emp2.sal from emp emp1,emp emp2 where emp1.sal>emp2.sal and emp1.mgr=emp2.empno;

  1. Trouver tout les employés qui gagnent plus que JONES :

select emp1.empno, emp1.ename,emp1.sal from emp emp1,emp emp2 where emp2.ename=’JONES’ and emp2.sal<emp1.sal;

  1. Trouver le grade de chaque employés :

select emp.empno, emp.ename, salgrade.grade from emp, salgrade where emp.sal between salgrade.losal and salgrade.hisal;

  1. Liste du nom et du job des employés qui ont le même job que JONES :

select emp1.ename ,emp1.job from emp emp1,emp emp2 where emp2.ename=’JONES’ and emp2.job=emp1.job and emp1.ename!=’JONES’;

  1. Trouver les noms employés qui gagnent plus qu'un employé du département 30 :

select emp.ename from emp where (select MIN(emp.sal) from emp where emp.deptno=30)<emp.sal;

  1. Trouver les noms employés qui gagnent plus qu'un employé du département 30, ainsi que son salaire et le salaire minimum du département 30 :

select emp.ename, emp.sal, (select MIN(emp.sal) from emp where emp.deptno=30) from emp where (select MIN(emp.sal) from emp where emp.deptno=30)<emp.sal;

 

 

  1. Trouver les employés qui gagnent plus que tous les employés du département 30 :

select emp.empno, emp.ename,emp.sal from emp where (select MAX(emp.sal) from emp where emp.deptno=30)<emp.sal;

  1. Trouver tout les employés du département 10 qui ont le même job que ceux du département 30 :

select emp1.empno,emp1.ename,emp1.job, emp2.empno,emp2.ename,emp2.job from emp emp1,emp emp2 where emp1.deptno=10 and emp2.deptno=30 and emp1.job=emp2.job;

  1. Lister le nom, le job et le département des employés qui ont le même job que FORD :

select emp1.ename,emp1.job,emp1.deptno from emp emp1,emp where emp1.job=emp.job and emp.ename=’FORD’ and emp1.ename!=’FORD’;

  1. Lister le nom, le job et le département des employés qui ont le même job que FORD, ou un salaire plus grand ou égal à celui de FORD (triés par ordre alphabétique du job et par salaire décroissant) :

select emp1.ename,emp1.job,emp1.deptno from emp emp1,emp where (emp1.job=emp.job and emp.ename=’JONES’ and emp1.ename!=’JONES’) or (emp1.sal>=emp.sal and emp.ename=’FORD’ and emp1.ename!=’FORD’) order by emp1.job, emp1.sal desc;

  1. Trouver tous les employés du département 10 qui ont un travail qui est le même que ceux du département SALES :

select emp1.empno,emp1.ename from emp emp1, emp emp2,dept dept1, dept dept2 where emp1.deptno=dept1.deptno and emp1.deptno=10 and emp2.deptno=dept2.deptno and dept2.dname=’SALES’ and emp2.job=emp1.job;

  1. Trouver les employésde CHICAGO qui ont le même JOB que ALLEN. Fournir le résultat en ordre alphabétique du nom de l'employé :

select emp1.empno, emp1.ename, emp1.job from emp emp1, emp emp2, dept where dept.loc=’CHICAGO’ and dept.deptno=emp1.deptno and emp2.job=emp1.job and emp2.ename=’ALLEN’ and emp1.ename!=’ALLEN’ order by emp1.ename;

  1. Trouver les employés qui gagnent plus que la moyenne des salaires de tout les employés de leur département :

select distinct emp1.ename, emp1.sal, (select AVG(emp2.sal) from emp emp2 where emp2.deptno=emp1.deptno) salmoy
from emp emp1, emp emp2
where(emp1.sal>(select AVG(emp2.sal) from emp emp2 where e            mp2.deptno=emp1.deptno));


 

 

 

 











Ajouter aux Favoris Ajouter aux votre page
 

 





Autoformations les cours informatiques en vidéos gratuitement
:: Copyright © 2008 http://www.autoformations.co.cc All rights reserved ::